package edu.fasta.sisinfo2.juegos;

import edu.fasta.sisinfo2.poker.Carta;

public class Poker implements Juego{
	
	private Carta cartaUno;
	private Carta cartaDos;
	private Carta cartaTres;
	private Carta cartaCuatro;

	public Poker(Carta cartaUno, Carta cartaDos, Carta cartaTres, Carta cartaCuatro){
		this.setCartaUno(cartaUno);
		this.setCartaDos(cartaDos);
		this.setCartaTres(cartaTres);
		this.setCartaCuatro(cartaCuatro);
	}
	
	public Juego compararJuego(EscaleraReal unaEscaleraReal){
		return unaEscaleraReal;
	}
	
	public Juego compararJuego(EscaleraColor unaEscaleraColor){
		return unaEscaleraColor;
	}
	
	public Juego compararJuego(Poker unPoker){
		
		if( ((((Carta) this.getCartaUno()).getPuntaje()) == 1) && ((((Carta) unPoker.getCartaUno()).getPuntaje()) != 1 ) ){
			return this;
		}else{
			if( ((((Carta) this.getCartaUno()).getPuntaje()) != 1) && ((((Carta) unPoker.getCartaUno()).getPuntaje()) == 1 ) ){
				return unPoker;
			}else{
				if( ((((Carta) this.getCartaUno()).getPuntaje()) == 1) && ((((Carta) unPoker.getCartaUno()).getPuntaje()) == 1 ) ){
					System.out.println("Poker Empatados... A");
					return null;
				}
			}
		}
		
		if( (((Carta) this.getCartaUno()).getPuntaje()) > (((Carta) unPoker.getCartaUno()).getPuntaje())){
			return this;
		}else{
			if ( (((Carta) this.getCartaUno()).getPuntaje()) < (((Carta) unPoker.getCartaUno()).getPuntaje())){
				return unPoker;
			}
		}
		System.out.println("Poker Empatados...X");
		return null;
	}
	
	public Juego compararJuego(Full unFull){
		return this;
	}
	
	public Juego compararJuego(Color unColor){
		return this;
	}
	
	public Juego compararJuego(Escalera unaEscalera){
		return this;
	}
	
	public Juego compararJuego(Trio unTrio){
		return this;
	}
	
	public Juego compararJuego(DoblePar unDoblePar){
		return this;
	}
	
	public Juego compararJuego(Par unPar){
		return this;
	}
	
	public Juego compararJuego(CartaAlta unaCartaAlta){
		return this;
	}

	public Juego compararJuego(Juego unJuego) {
		return unJuego.compararJuego(this);
	}

	public Carta getCartaUno() {
		return cartaUno;
	}

	public void setCartaUno(Carta cartaUno) {
		this.cartaUno = cartaUno;
	}

	public Carta getCartaDos() {
		return cartaDos;
	}

	public void setCartaDos(Carta cartaDos) {
		this.cartaDos = cartaDos;
	}

	public Carta getCartaTres() {
		return cartaTres;
	}

	public void setCartaTres(Carta cartaTres) {
		this.cartaTres = cartaTres;
	}

	public Carta getCartaCuatro() {
		return cartaCuatro;
	}

	public void setCartaCuatro(Carta cartaCuatro) {
		this.cartaCuatro = cartaCuatro;
	}

	public String queSos() {
		return "un Poker de "  + this.getCartaUno().imprimirla() + " " + this.getCartaDos().imprimirla() + " " +
				this.getCartaTres().imprimirla() + " " + this.getCartaCuatro().imprimirla()+ "\n";
	}

}
